import { ConfigEnv, defineConfig } from 'vite';
import react from '@vitejs/plugin-react-swc';
import svgr from 'vite-plugin-svgr';
import WindiCSS from 'vite-plugin-windicss';
// import { viteStaticCopy } from 'vite-plugin-static-copy';
import ImportMetaEnvPlugin from '@import-meta-env/unplugin';
import postcssNesting from 'postcss-nesting';
import packageJson from './package.json';
import WindiCSSConfig from './windi.config';

// https://vitejs.dev/config/
export default ({ mode }: ConfigEnv) => {
  return defineConfig({
    define : {
      APP_NAME   : JSON.stringify(packageJson.name),
      APP_VERSION: JSON.stringify(packageJson.version),
      APP_MODE   : JSON.stringify(mode),
    },
    plugins: [
      react(),
      svgr({
        exportAsDefault: true,
        svgrOptions    : {
          ...require('./svgr.config'),
          svgo      : true,
          svgoConfig: require('./svgo.config'),
        },
      }),
      WindiCSS({
        config: WindiCSSConfig,
      }),
      ImportMetaEnvPlugin.vite({
        example: `.env`,
      }),
      // 如果需要 webpack 的 copy-webpack-plugin 相似的功能，请启用下面的部分
      // viteStaticCopy({
      //   targets: [
      //     {
      //       src : 'dist-umd/**/*',
      //       dest: 'umd',
      //     },
      //   ],
      // }),
    ],
    css    : {
      postcss: {
        plugins: [
          postcssNesting,
        ],
      },
    },
  });
}
